Un objet Part Feature, ou formellement un Part::Feature
, est un élément simple associé à une forme topologique qui peut être affiché dans la vue 3D.
Part Feature est la classe parente de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign), à l'exception des maillages, qui sont normalement basés sur Mesh Feature ou FEM FemMeshObject pour les objets FEM.
Diagramme simplifié des relations entre les objets clés dans Freecad
Part Feature est un objet interne. Par conséquent, il ne peut pas être créé à partir de l'interface graphique, uniquement à partir de la console Python, comme décrit dans la section Script.
L'objet Part::Feature
est défini dans l'atelier Part mais peut être utilisé comme classe de base pour les objets scriptés dans tous les ateliers générant des formes géométriques 2D et 3D. En fait, tous les objets produits dans l'atelier Part sont des instances d'un Part::Feature
.
Part::Feature
est également la classe parente de PartDesign Corps, de PartDesign Features et de Part Part2DObject, qui est spécialisée pour les formes 2D (planes).
Des ateliers peuvent ajouter plus de propriétés à cet élément de base pour produire un objet au comportement complexe.
Voir Propriétés pour tous les types de propriétés que les objets scriptés peuvent avoir.
Part Feature (classe Part::Feature
) est dérivée de App GeoFeature (classe App::GeoFeature
) et hérite de toutes ses propriétés. Elle possède également plusieurs propriétés supplémentaires. Notamment une propriété DonnéesShape, qui stocke la Part TopoShape de l'objet. Il s'agit de la géométrie qui est affichée dans la vue 3D. Les autres propriétés de cet objet sont celles liées à l'apparence de sa TopoShape.
Ce sont les propriétés disponibles dans l'éditeur de propriétés. Les propriétés masquées peuvent être affichées en utilisant la commande Afficher les propriétés cachées dans le menu contextuel de l'éditeur de propriétés.
Base
PythonObject
) : une classe personnalisée associée à cet objet. Ceci n'existe que pour la version en Python. Voir Script.PartShape
) : Part TopoShape associée à cet objet.Material
) : matériau de l'objet.Placement
) : position de l'objet. Le placement est défini par un point (vecteur) Base
et Rotation
(axe et angle). Voir Placement.
0°
(zéro degré).0
et 1
. Si une valeur est supérieure à 1
, le vecteur est normalisé de manière à ce que sa magnitude soit 1
. Par défaut, il s'agit de l'axe Z positif, (0, 0, 1)
.(0, 0, 0)
.String
) : à définir. introduit dans la version 1.1String
) : le nom de cet objet, modifiable par l'utilisateur, est une chaîne UTF8 arbitraire.String
) : une description plus longue, modifiable par l'utilisateur, de cet objet. Il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des nouvelles lignes. Par défaut, il s'agit d'une chaîne vide ""
.ExpressionEngine
) : une liste d'expressions. Par défaut, elle est vide []
.Bool
) : affichage ou non de l'objet.
La plupart des objets dans FreeCAD ont ce qu'on appelle un "viewprovider", c'est-à-dire une classe qui définit l'apparence visuelle de l'objet dans la vue 3D et dans la vue en arborescence. Le viewprovider par défaut des objets Part Feature définit les propriétés suivantes. Les objets scriptés dérivés de Part Feature auront également accès à ces propriétés.
Base
PythonObject
) : une classe personnalisée de viewprovider associée à cet objet. Ceci n'existe que pour la version en Python. Voir Script.Placement
) : enregistre l'origine utilisée par Std Transformer. introduit dans la version 1.1Options d'affichage
Bool
) : si true
, l'objet affichera le cadre de délimitation dans la vue 3D.Enumeration
) : Flat Lines
(par défaut), Shaded
(pas d'arêtes), Wireframe
(pas de faces), Points
(uniquement les sommets).Bool
) : si true
, auquel cas l'objet apparaîtra dans la vue en arborescence sinon, l'objet sera masqué dans l'arborescence. Une fois qu'un objet de l'arborescence est invisible, vous pouvez le revoir en ouvrant le menu contextuel sur le nom du document (clic droit) et en sélectionnant true
.Bool
) : si true
, un système de coordonnées indiquant DonnéesPlacement de l'objet est affiché. introduit dans la version 1.1Bool
) : si true
l'objet apparaît dans la vue 3D sinon il est invisible. Par défaut, cette propriété peut être activée ou désactivée en appuyant sur la barre Espace.Style de l'objet
Angle
) : va de pair avec VueDeviation. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors d'exportations. La valeur par défaut est 28.5 degrees
ou 0.5 radians
. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse et plus le maillage exporté sera fin.FloatConstraint
) : va de pair avec VueAngular Deflection. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. Par défaut 0.5%
. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse et plus le maillage exporté sera fin.Enumeration
) : Solid
(par défaut), Dashed
, Dotted
, Dashdot
. Définit le style des arêtes.Enumeration
) : Two side
(par défaut), One side
. L'éclairage provient de deux côtés ou d'un seul côté dans la vue 3D.Color
) : un tuple de quatre valeurs RGBA à virgule flottante pour définir la couleur des arêtes.ColorList
) : liste de tuples RGBA définissant les couleurs, similaire à VueLine Color.Material
) : un App Material associé aux arêtes de cet objet. Par défaut, il est vide.FloatConstraint
) : valeur à virgule flottante qui détermine la largeur en pixels des arêtes.Color
) : similair à VueLine Color, définit la couleur des sommets.ColorList
) : liste de tuples RGBA définissant les couleurs, similaire à VuePoint Color.Material
) : un App Material associé aux arêtes de cet objet. Par defaut c'est vide.FloatConstraint
) : similaire à VueLine Width, définit la taille des sommets.MaterialList
) : liste de App Materials définissant l'apparence de l'objet. Par défaut, la liste contient un seul élément qui est ensuite utilisé pour toutes les faces de l'objet. Elle peut également contenir un App Material distinct pour chaque face. Voir Part Couleur par face. Seul le premier App Material est affiché dans l'éditeur de propriétés. Si vous le modifiez, vous obtiendrez une liste contenant un seul élément. Un App Material possède les propriétés suivantes :
Percent
) : un nombre entier compris entre 0
et 100
qui détermine le niveau de transparence des faces. Une valeur de 100
indique des faces totalement invisibles. Les faces sont invisibles mais peuvent toujours être sélectionnées tant que VueSelectable est true
. La modification de cette propriété modifie également la liste VueShape Appearance de l'objet. La liste résultante ne contiendra qu'un seul élément.Selection
Enumeration
) : contrôle la manière dont la sélection s'effectue dans la vue 3D, si l'objet a une Shape et s'il y a beaucoup d'objets partiellement couverts par d'autres. Par défaut Disabled
, ce qui signifie qu'aucune mise en évidence spéciale ne se produira. Enabled
signifie que l'objet apparaîtra au-dessus de tout autre objet lorsqu'il est sélectionné. Object
signifie que l'objet n'apparaîtra par dessus que si l'objet entier est sélectionné dans la vue en arborescence. Element
signifie que l'objet n'apparaîtra en haut que si un sous-élément (sommet, arête, face) est sélectionné dans la vue 3D.Bool
) : si true
, l'objet peut être sélectionné avec le pointeur dans la vue 3D, sinon l'objet ne peut être sélectionné que dans l'arborescence.Enumeration
) : contrôle la façon dont l'objet est surbrillé. Avec Shape
, la forme entière (sommets, arêtes et faces) sera mise en surbrillance dans la vue 3D. Avec BoundBox
, un cadre de délimitation apparaîtra autour de l'objet et sera mis en surbrillance.
Déflexion angulaire et paramètres de déviation ; d < déflexion linéaire, α < déflexion angulaire.
L'écart est une valeur en pourcentage qui est liée aux dimensions en millimètres de la boîte englobante de l'objet. L'écart en millimètres peut être calculé comme suit:
deviation_in_mm = (w + h + d)/3 * deviation/100
où w
, h
, d
sont les dimensions de la boîte englobante.
Voir aussi : Débuter avec les scripts et Objets créés par script.
Une Part Feature est créée avec la méthode addObject()
du document.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("Part::Feature", "Name")
obj.Label = "Custom label"
Pour la sous-classification de Python, vous devez créer l'objet Part::FeaturePython
.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("Part::FeaturePython", "Name")
obj.Label = "Custom label"
Voir aussi : Object name pour plus d'informations sur les propriétés de Name
.
La méthode addObject
possède deux arguments de base de type chaîne.
"Part::FeaturePython"
.Name
. S'il n'est pas fourni, il utilise par défaut le même nom que la classe, c'est-à-dire "Part__FeaturePython"
. Name
ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, [_0-9a-zA-Z]
. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, "A+B:C*"
est converti en "A_B_C_"
.
Si vous le souhaitez, l'attribut Label
peut être remplacé par un texte plus significatif.
Label
peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. Puisque la vue en arborescence affiche Label
, il est recommandé de changer Label
en une chaîne plus descriptive.Label
est unique, tout comme Name
. Ce comportement peut être modifié dans Réglage des préférences, Édition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document. Cela signifie qu'en général, Label
peut être répété dans le même document. Lors du test d'un élément spécifique, l'utilisateur doit s'appuyer sur Name
plutôt que sur Label
.